The occurrence of knocking in a multi-cylinder internal combustion engine can be detected by mounting at least one piezoelectric knock sensor on the engine to produce an electrical knock signal responsive to engine vibration, and suitably filtering and processing the knock signal. Since knocking in a given cylinder occurs primarily in a certain interval following the top dead center position of the combustion stroke, the filtered knock signal can be processed over specified knock detection windows corresponding to the various cylinders. When a knock event is detected for a given engine cylinder, the spark timing and/or fuel delivery for that cylinder are altered to suppress further knocking.
The signal processing portion of knock control generally involves analyzing the filtered knock signal to determine the amplitude of the signal at one or more specified knock frequencies. The specified knock frequency depends on the engine geometry and other factors such as the combustion temperature, and is typically determined off-line for a particular class of engines. In general, a knock event is detected if the signal amplitude at a specified knock frequency exceeds a calibrated threshold.
A common way of determining the knock signal amplitude at a specified knock frequency is to transform the filtered knock signal to the frequency domain over the knock detection window using Discrete Fourier Transform (DFT) equations. In principle, the DFT calculations can be performed in real time by an on-board microprocessor or digital signal processor (DSP). But in a production system, cost-driven limitations on the processing throughput and memory capacity can result in constraints that tend to limit the applicability and usefulness of the DFT. The usual way of addressing this problem is to limit the duration of the knock detection window to a single value in order to simplify the DFT calculations. However, fixing the duration of the knock detection window can make it difficult to calibrate the system for optimal knock detection, particularly when other sources of vibrational noise occur. Accordingly, what is needed is a technique for permitting adjustment of the knock detection window duration without significantly increasing the computational burden or memory capacity required to perform the DFT calculations.